#ifndef NNLAYER_H_
#define NNLAYER_H_

#include "CNNType.h"

class NNLayer
{
public:
    NNLayer(std::string label = NULL, NNLayer * pPreLayer = NULL);
    virtual ~NNLayer();
    const char * getLabelName();
    void AddNeuron(int cNeurons);
    void AddWeight(int cWeights);
    void setKernel(int * pKernel, int kernelWight, int kernelHeight);
private:
    std::string m_Label;
    VectorNeurons m_Neurons;
    VectorWeights m_Weights;
    NNLayer * m_pPreLayer;
    int * m_pKernel;
private:
    void Init();
    void UnInit();
    void Reuse();
};

#endif /* NNLAYER_H_ */

